6dbcbff9dbe1558b5b66d24f4bff5e2beac19619,workbench/source/jetbrains/mps/ide/smodel/WorkbenchModelAccess.java,WorkbenchModelAccess,tryWriteInCommand,#Runnable#Project#,468

Before Change


    final boolean[] res = new boolean[]{false};

    final Project project = p != null ? p : CurrentProjectAccessUtil.getProjectFromUI();
    CommandProcessor.getInstance().executeCommand(
      project,
      new Runnable() {
        public void run() {
          ApplicationManager.getApplication().runWriteAction(new Runnable() {
            public void run() {
              try {
                if (getWriteLock().tryLock(WAIT_FOR_WRITE_LOCK_MILLIS, MILLISECONDS)) {
                  try {
                    new CommandRunnable(r, project).run();
                  } finally {
                    getWriteLock().unlock();
                  }
                  res[0] = true;
                }
              } catch (InterruptedException ignore) {}
            }
          });
        }
      },
      "", null, UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION);

    return res[0];
  }

After Change



    final Project project = p != null ? p : CurrentProjectAccessUtil.getProjectFromUI();

    Runnable commandRunnable = new Runnable() {
      @Override
      public void run() {
        try {
          if (getWriteLock().tryLock(WAIT_FOR_WRITE_LOCK_MILLIS, MILLISECONDS)) {
            try {
              new CommandRunnable(r, project).run();
            } finally {
              getWriteLock().unlock();
            }
          }
        } catch (InterruptedException e) {
          return;
        }
        res[0] = true;
      }
    };

    CommandProcessor.getInstance().executeCommand(
      project,
      new TryWriteActionRunnable(commandRunnable),
      "", null, UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION);

    return res[0];
  }